8990. Удвоение гласных

 

Строка состоит из строчных латинских букв и пробелов. Удвойте в ней все гласные буквы, то есть буквы aeiou и y.

 

Вход. Одна строка, содержащая только строчные латинские буквы и пробелы. Длина строки не превышает 1000 символов.

 

Выход. Выведите строку, в которой все гласные буквы удвоены.

 

Пример входа

Пример выхода

welcome to python

weelcoomee too pyythoon

 

 

РЕШЕНИЕ

строки

 

Анализ алгоритма

Объявим указатель i на начало исходного символьного массива s и указатель j на начало результирующего символьного массива t, присвоив им начальное значение i = j = 0. Для каждой буквы строки s, которая не является гласной, копируем s[i] в t[j] и перемещаем указатель j на одну позицию вперёд. Если буква s[i] является гласной, добавляем её дважды в конец строки t, после чего j увеличивается на две позиции.

 

Реализация алгоритма

Объявим входной символьный массив s и результирующий t.

 

char s[1001], t[2001];

 

Читаем входную строку.

 

gets(s);

 

Символ s[i] копируем в t[j] и увеличиваем индекс j на 1. Если s[i] является гласной, добавляем её в массив t дважды.

 

int j = 0;

for (int i = 0; i < strlen(s); i++)

  if (s[i] == 'a' || s[i] == 'e' || s[i] == 'i' || s[i] == 'o' ||

      s[i] == 'u' || s[i] == 'y')

  {

    t[j++] = s[i];

    t[j++] = s[i];

  }

  else

    t[j++] = s[i];

 

В конце результирующей строки записываем нулевой байт для указания её окончания.

 

t[j] = 0;

 

Выводим результат.

 

puts(t);

 

Реализация алгоритма – C++

Читаем входную строку.

 

getline(cin, s);

 

Инициализируем пустую строку res, которая будет содержать результат.

 

res = "";

 

Перебираем символы строки s.

·        Если s[i] является гласной, добавляем в res два символа s[i].

·        Если s[i] является согласной, добавляем в res один символ s[i].

 

for (i = 0; i < s.size(); i++)

{

 

Добавляем символ s[i] в res.

 

  res = res + s[i];

 

Если s[i] является гласной, добавляем её в res ещё раз.

 

  if (s[i] == 'a' || s[i] == 'e' || s[i] == 'i' || s[i] == 'o' ||

      s[i] == 'u' || s[i] == 'y')

    res = res + s[i];

}

 

Выводим ответ.

 

cout << res;

 

Java реализация

 

import java.util.*;

 

public class Main

{

  public static void main(String[] args)

  {

    Scanner con = new Scanner(System.in);

    String s = con.nextLine();

    String res = "";

    for(int i = 0; i < s.length(); i++)

      if (s.charAt(i) == 'a' || s.charAt(i) == 'e' ||

          s.charAt(i) == 'i' || s.charAt(i) == 'o' ||

          s.charAt(i) == 'u' || s.charAt(i) == 'y' )

        res = res + s.charAt(i) + s.charAt(i);

      else

        res = res + s.charAt(i);

    System.out.println(res);

    con.close();

  }

}

 

Python реализация

Читаем входную строку.

 

s = input()

 

Инициализируем пустую строку res, которая будет содержать результат.

 

res = ""

 

Перебираем символы строки s.

·        Если ch является гласной, добавляем в res два символа ch.

·        Если ch является согласной, добавляем в res один символ ch.

 

for ch in s:

 

Добавляем символ ch в res.

 

  res += ch

 

Если ch является гласной, добавляем её в res ещё раз.

 

  if ch in "aeiouy":

    res += ch

 

Выводим ответ.

 

print(res)